/* *****************************************************************************
 * JFab (http://code.google.com/p/jfab)
 * Copyright (c) 2011 JFab.org
 * Admin jfab@jeffreythompson.net
 *
 * See the file "LICENSE.txt" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 * *****************************************************************************/

package org.jfab.core.inflator;

import org.jfab.core.collection.CGInterfaceList;
import org.jfab.core.model.CGObject;

/**
 * Defines methods required by an inflator of code generator objects.
 * 
 * @param <T> Code generator object type.
 */
public interface Inflator<T extends CGObject>
{
    /**
     * @param object Code generator object.
     * @param superInterfaces Code generator interface list.
     * 
     * @return the given parameter inflated into a code generator object.
     */
    T inflate(T object, CGInterfaceList superInterfaces);
}
